<?xml version="1.0" encoding="UTF-8"?>
<!--
Objective: A query with DQA on non-redistributable column should not request for Redistribute Motion 

create table testhstore (h hstore);
explain select count(distinct h) from testhstore;

                                         QUERY PLAN
 Aggregate  (cost=0.00..431.00 rows=1 width=8)
   ->  GroupAggregate  (cost=0.00..431.00 rows=1 width=5)
         Group Key: h
         ->  Gather Motion 3:1  (slice1; segments: 3)  (cost=0.00..431.00 rows=1 width=5)
               Merge Key: h
               ->  GroupAggregate  (cost=0.00..431.00 rows=1 width=5)
                     Group Key: h
                     ->  Sort  (cost=0.00..431.00 rows=1 width=5)
                           Sort Key: h
                           ->  Table Scan on testhstore  (cost=0.00..431.00 rows=1 width=5)
 Optimizer: PQO version 2.55.2
(11 rows)
-->
<dxl:DXLMessage xmlns:dxl="http://greenplum.com/dxl/2010/12/">
  <dxl:Thread Id="0">
    <dxl:OptimizerConfig>
      <dxl:EnumeratorConfig Id="0" PlanSamples="0" CostThreshold="0"/>
      <dxl:StatisticsConfig DampingFactorFilter="0.750000" DampingFactorJoin="0.010000" DampingFactorGroupBy="0.750000" MaxStatsBuckets="100"/>
      <dxl:CTEConfig CTEInliningCutoff="0"/>
      <dxl:WindowOids RowNumber="3100" Rank="3101"/>
      <dxl:CostModelConfig CostModelType="1" SegmentsForCosting="3">
        <dxl:CostParams>
          <dxl:CostParam Name="NLJFactor" Value="1.000000" LowerBound="0.500000" UpperBound="1.500000"/>
        </dxl:CostParams>
      </dxl:CostModelConfig>
      <dxl:Hint JoinArityForAssociativityCommutativity="18" ArrayExpansionThreshold="25" JoinOrderDynamicProgThreshold="10" BroadcastThreshold="10000000" EnforceConstraintsOnDML="false"/>
      <dxl:TraceFlags Value="103027,101013,102120,103001,103014,103015,103022,104003,104004,104005,105000"/>
    </dxl:OptimizerConfig>
    <dxl:Metadata SystemIds="0.GPDB">
      <dxl:RelationStatistics Mdid="2.65536.1.0" Name="testhstore" Rows="1.000000" EmptyRelation="false"/>
      <dxl:Relation Mdid="6.65536.1.0" Name="testhstore" IsTemporary="false" HasOids="false" StorageType="Heap" DistributionPolicy="Random" Keys="7,1" NumberLeafPartitions="0">
        <dxl:Columns>
          <dxl:Column Name="h" Attno="1" Mdid="0.32774.1.0" Nullable="true" ColWidth="5">
            <dxl:DefaultValue/>
          </dxl:Column>
          <dxl:Column Name="ctid" Attno="-1" Mdid="0.27.1.0" Nullable="false" ColWidth="6">
            <dxl:DefaultValue/>
          </dxl:Column>
          <dxl:Column Name="xmin" Attno="-3" Mdid="0.28.1.0" Nullable="false" ColWidth="4">
            <dxl:DefaultValue/>
          </dxl:Column>
          <dxl:Column Name="cmin" Attno="-4" Mdid="0.29.1.0" Nullable="false" ColWidth="4">
            <dxl:DefaultValue/>
          </dxl:Column>
          <dxl:Column Name="xmax" Attno="-5" Mdid="0.28.1.0" Nullable="false" ColWidth="4">
            <dxl:DefaultValue/>
          </dxl:Column>
          <dxl:Column Name="cmax" Attno="-6" Mdid="0.29.1.0" Nullable="false" ColWidth="4">
            <dxl:DefaultValue/>
          </dxl:Column>
          <dxl:Column Name="tableoid" Attno="-7" Mdid="0.26.1.0" Nullable="false" ColWidth="4">
            <dxl:DefaultValue/>
          </dxl:Column>
          <dxl:Column Name="gp_segment_id" Attno="-8" Mdid="0.23.1.0" Nullable="false" ColWidth="4">
            <dxl:DefaultValue/>
          </dxl:Column>
        </dxl:Columns>
        <dxl:IndexInfoList/>
        <dxl:Triggers/>
        <dxl:CheckConstraints/>
      </dxl:Relation>
      <dxl:Type Mdid="0.32774.1.0" Name="hstore" IsRedistributable="false" IsHashable="true" IsMergeJoinable="true" IsComposite="false" IsFixedLength="false" Length="-1" PassByValue="false">
        <dxl:EqualityOp Mdid="0.32837.1.0"/>
        <dxl:InequalityOp Mdid="0.32836.1.0"/>
        <dxl:LessThanOp Mdid="0.32840.1.0"/>
        <dxl:LessThanEqualsOp Mdid="0.32841.1.0"/>
        <dxl:GreaterThanOp Mdid="0.32838.1.0"/>
        <dxl:GreaterThanEqualsOp Mdid="0.32839.1.0"/>
        <dxl:ComparisonOp Mdid="0.32835.1.0"/>
        <dxl:ArrayType Mdid="0.32779.1.0"/>
        <dxl:MinAgg Mdid="0.0.0.0"/>
        <dxl:MaxAgg Mdid="0.0.0.0"/>
        <dxl:AvgAgg Mdid="0.0.0.0"/>
        <dxl:SumAgg Mdid="0.0.0.0"/>
        <dxl:CountAgg Mdid="0.2147.1.0"/>
      </dxl:Type>
      <dxl:ColumnStatistics Mdid="1.65536.1.0.0" Name="h" Width="5.000000" NullFreq="0.000000" NdvRemain="1.000000" FreqRemain="1.000000" ColStatsMissing="false"/>
      <dxl:Type Mdid="0.16.1.0" Name="bool" IsRedistributable="true" IsHashable="true" IsMergeJoinable="true" IsComposite="false" IsFixedLength="true" Length="1" PassByValue="true">
        <dxl:EqualityOp Mdid="0.91.1.0"/>
        <dxl:InequalityOp Mdid="0.85.1.0"/>
        <dxl:LessThanOp Mdid="0.58.1.0"/>
        <dxl:LessThanEqualsOp Mdid="0.1694.1.0"/>
        <dxl:GreaterThanOp Mdid="0.59.1.0"/>
        <dxl:GreaterThanEqualsOp Mdid="0.1695.1.0"/>
        <dxl:ComparisonOp Mdid="0.1693.1.0"/>
        <dxl:ArrayType Mdid="0.1000.1.0"/>
        <dxl:MinAgg Mdid="0.0.0.0"/>
        <dxl:MaxAgg Mdid="0.0.0.0"/>
        <dxl:AvgAgg Mdid="0.0.0.0"/>
        <dxl:SumAgg Mdid="0.0.0.0"/>
        <dxl:CountAgg Mdid="0.2147.1.0"/>
      </dxl:Type>
      <dxl:Type Mdid="0.20.1.0" Name="Int8" IsRedistributable="true" IsHashable="true" IsMergeJoinable="true" IsComposite="false" IsFixedLength="true" Length="8" PassByValue="true">
        <dxl:EqualityOp Mdid="0.410.1.0"/>
        <dxl:InequalityOp Mdid="0.411.1.0"/>
        <dxl:LessThanOp Mdid="0.412.1.0"/>
        <dxl:LessThanEqualsOp Mdid="0.414.1.0"/>
        <dxl:GreaterThanOp Mdid="0.413.1.0"/>
        <dxl:GreaterThanEqualsOp Mdid="0.415.1.0"/>
        <dxl:ComparisonOp Mdid="0.351.1.0"/>
        <dxl:ArrayType Mdid="0.1016.1.0"/>
        <dxl:MinAgg Mdid="0.2131.1.0"/>
        <dxl:MaxAgg Mdid="0.2115.1.0"/>
        <dxl:AvgAgg Mdid="0.2100.1.0"/>
        <dxl:SumAgg Mdid="0.2107.1.0"/>
        <dxl:CountAgg Mdid="0.2147.1.0"/>
      </dxl:Type>
      <dxl:Type Mdid="0.23.1.0" Name="int4" IsRedistributable="true" IsHashable="true" IsMergeJoinable="true" IsComposite="false" IsFixedLength="true" Length="4" PassByValue="true">
        <dxl:EqualityOp Mdid="0.96.1.0"/>
        <dxl:InequalityOp Mdid="0.518.1.0"/>
        <dxl:LessThanOp Mdid="0.97.1.0"/>
        <dxl:LessThanEqualsOp Mdid="0.523.1.0"/>
        <dxl:GreaterThanOp Mdid="0.521.1.0"/>
        <dxl:GreaterThanEqualsOp Mdid="0.525.1.0"/>
        <dxl:ComparisonOp Mdid="0.351.1.0"/>
        <dxl:ArrayType Mdid="0.1007.1.0"/>
        <dxl:MinAgg Mdid="0.2132.1.0"/>
        <dxl:MaxAgg Mdid="0.2116.1.0"/>
        <dxl:AvgAgg Mdid="0.2101.1.0"/>
        <dxl:SumAgg Mdid="0.2108.1.0"/>
        <dxl:CountAgg Mdid="0.2147.1.0"/>
      </dxl:Type>
      <dxl:Type Mdid="0.26.1.0" Name="oid" IsRedistributable="true" IsHashable="true" IsMergeJoinable="true" IsComposite="false" IsFixedLength="true" Length="4" PassByValue="true">
        <dxl:EqualityOp Mdid="0.607.1.0"/>
        <dxl:InequalityOp Mdid="0.608.1.0"/>
        <dxl:LessThanOp Mdid="0.609.1.0"/>
        <dxl:LessThanEqualsOp Mdid="0.611.1.0"/>
        <dxl:GreaterThanOp Mdid="0.610.1.0"/>
        <dxl:GreaterThanEqualsOp Mdid="0.612.1.0"/>
        <dxl:ComparisonOp Mdid="0.356.1.0"/>
        <dxl:ArrayType Mdid="0.1028.1.0"/>
        <dxl:MinAgg Mdid="0.2118.1.0"/>
        <dxl:MaxAgg Mdid="0.2134.1.0"/>
        <dxl:AvgAgg Mdid="0.0.0.0"/>
        <dxl:SumAgg Mdid="0.0.0.0"/>
        <dxl:CountAgg Mdid="0.2147.1.0"/>
      </dxl:Type>
      <dxl:Type Mdid="0.27.1.0" Name="tid" IsRedistributable="true" IsHashable="false" IsMergeJoinable="false" IsComposite="false" IsFixedLength="true" Length="6" PassByValue="false">
        <dxl:EqualityOp Mdid="0.387.1.0"/>
        <dxl:InequalityOp Mdid="0.402.1.0"/>
        <dxl:LessThanOp Mdid="0.2799.1.0"/>
        <dxl:LessThanEqualsOp Mdid="0.2801.1.0"/>
        <dxl:GreaterThanOp Mdid="0.2800.1.0"/>
        <dxl:GreaterThanEqualsOp Mdid="0.2802.1.0"/>
        <dxl:ComparisonOp Mdid="0.2794.1.0"/>
        <dxl:ArrayType Mdid="0.1010.1.0"/>
        <dxl:MinAgg Mdid="0.2798.1.0"/>
        <dxl:MaxAgg Mdid="0.2797.1.0"/>
        <dxl:AvgAgg Mdid="0.0.0.0"/>
        <dxl:SumAgg Mdid="0.0.0.0"/>
        <dxl:CountAgg Mdid="0.2147.1.0"/>
      </dxl:Type>
      <dxl:Type Mdid="0.29.1.0" Name="cid" IsRedistributable="false" IsHashable="true" IsMergeJoinable="false" IsComposite="false" IsFixedLength="true" Length="4" PassByValue="true">
        <dxl:EqualityOp Mdid="0.385.1.0"/>
        <dxl:InequalityOp Mdid="0.0.0.0"/>
        <dxl:LessThanOp Mdid="0.0.0.0"/>
        <dxl:LessThanEqualsOp Mdid="0.0.0.0"/>
        <dxl:GreaterThanOp Mdid="0.0.0.0"/>
        <dxl:GreaterThanEqualsOp Mdid="0.0.0.0"/>
        <dxl:ComparisonOp Mdid="0.0.0.0"/>
        <dxl:ArrayType Mdid="0.1012.1.0"/>
        <dxl:MinAgg Mdid="0.0.0.0"/>
        <dxl:MaxAgg Mdid="0.0.0.0"/>
        <dxl:AvgAgg Mdid="0.0.0.0"/>
        <dxl:SumAgg Mdid="0.0.0.0"/>
        <dxl:CountAgg Mdid="0.2147.1.0"/>
      </dxl:Type>
      <dxl:Type Mdid="0.28.1.0" Name="xid" IsRedistributable="false" IsHashable="true" IsMergeJoinable="false" IsComposite="false" IsFixedLength="true" Length="4" PassByValue="true">
        <dxl:EqualityOp Mdid="0.352.1.0"/>
        <dxl:InequalityOp Mdid="0.0.0.0"/>
        <dxl:LessThanOp Mdid="0.0.0.0"/>
        <dxl:LessThanEqualsOp Mdid="0.0.0.0"/>
        <dxl:GreaterThanOp Mdid="0.0.0.0"/>
        <dxl:GreaterThanEqualsOp Mdid="0.0.0.0"/>
        <dxl:ComparisonOp Mdid="0.0.0.0"/>
        <dxl:ArrayType Mdid="0.1011.1.0"/>
        <dxl:MinAgg Mdid="0.0.0.0"/>
        <dxl:MaxAgg Mdid="0.0.0.0"/>
        <dxl:AvgAgg Mdid="0.0.0.0"/>
        <dxl:SumAgg Mdid="0.0.0.0"/>
        <dxl:CountAgg Mdid="0.2147.1.0"/>
      </dxl:Type>
      <dxl:GPDBScalarOp Mdid="0.32840.1.0" Name="#&lt;#" ComparisonType="LT" ReturnsNullOnNullInput="true">
        <dxl:LeftType Mdid="0.32774.1.0"/>
        <dxl:RightType Mdid="0.32774.1.0"/>
        <dxl:ResultType Mdid="0.16.1.0"/>
        <dxl:OpFunc Mdid="0.32833.1.0"/>
        <dxl:Commutator Mdid="0.32838.1.0"/>
        <dxl:InverseOp Mdid="0.32839.1.0"/>
        <dxl:Opfamilies>
          <dxl:Opfamily Mdid="0.32842.1.0"/>
        </dxl:Opfamilies>
      </dxl:GPDBScalarOp>
      <dxl:GPDBAgg Mdid="0.2147.1.0" Name="count" IsSplittable="true" HashAggCapable="true">
        <dxl:ResultType Mdid="0.20.1.0"/>
        <dxl:IntermediateResultType Mdid="0.20.1.0"/>
      </dxl:GPDBAgg>
    </dxl:Metadata>
    <dxl:Query>
      <dxl:OutputColumns>
        <dxl:Ident ColId="9" ColName="count" TypeMdid="0.20.1.0"/>
      </dxl:OutputColumns>
      <dxl:CTEList/>
      <dxl:LogicalGroupBy>
        <dxl:GroupingColumns/>
        <dxl:ProjList>
          <dxl:ProjElem ColId="9" Alias="count">
            <dxl:AggFunc AggMdid="0.2147.1.0" AggDistinct="true" AggStage="Normal" AggKind="n" >
              <dxl:ValuesList ParamType="aggargs">
              <dxl:Ident ColId="1" ColName="h" TypeMdid="0.32774.1.0"/>
              </dxl:ValuesList>
              <dxl:ValuesList ParamType="aggdirectargs"/>
              <dxl:ValuesList ParamType="aggorder"/>
              <dxl:ValuesList ParamType="aggdistinct"/>
            </dxl:AggFunc>
          </dxl:ProjElem>
        </dxl:ProjList>
        <dxl:LogicalGet>
          <dxl:TableDescriptor Mdid="6.65536.1.0" TableName="testhstore">
            <dxl:Columns>
              <dxl:Column ColId="1" Attno="1" ColName="h" TypeMdid="0.32774.1.0" ColWidth="5"/>
              <dxl:Column ColId="2" Attno="-1" ColName="ctid" TypeMdid="0.27.1.0" ColWidth="6"/>
              <dxl:Column ColId="3" Attno="-3" ColName="xmin" TypeMdid="0.28.1.0" ColWidth="4"/>
              <dxl:Column ColId="4" Attno="-4" ColName="cmin" TypeMdid="0.29.1.0" ColWidth="4"/>
              <dxl:Column ColId="5" Attno="-5" ColName="xmax" TypeMdid="0.28.1.0" ColWidth="4"/>
              <dxl:Column ColId="6" Attno="-6" ColName="cmax" TypeMdid="0.29.1.0" ColWidth="4"/>
              <dxl:Column ColId="7" Attno="-7" ColName="tableoid" TypeMdid="0.26.1.0" ColWidth="4"/>
              <dxl:Column ColId="8" Attno="-8" ColName="gp_segment_id" TypeMdid="0.23.1.0" ColWidth="4"/>
            </dxl:Columns>
          </dxl:TableDescriptor>
        </dxl:LogicalGet>
      </dxl:LogicalGroupBy>
    </dxl:Query>
    <dxl:Plan Id="0" SpaceSize="17">
      <dxl:Aggregate AggregationStrategy="Plain" StreamSafe="false">
        <dxl:Properties>
          <dxl:Cost StartupCost="0" TotalCost="431.000039" Rows="1.000000" Width="8"/>
        </dxl:Properties>
        <dxl:GroupingColumns/>
        <dxl:ProjList>
          <dxl:ProjElem ColId="8" Alias="count">
            <dxl:AggFunc AggMdid="0.2147.1.0" AggDistinct="false" AggStage="Normal" AggKind="n" >
              <dxl:ValuesList ParamType="aggargs">
              <dxl:Ident ColId="0" ColName="h" TypeMdid="0.32774.1.0"/>
              </dxl:ValuesList>
              <dxl:ValuesList ParamType="aggdirectargs"/>
              <dxl:ValuesList ParamType="aggorder"/>
              <dxl:ValuesList ParamType="aggdistinct"/>
            </dxl:AggFunc>
          </dxl:ProjElem>
        </dxl:ProjList>
        <dxl:Filter/>
        <dxl:Aggregate AggregationStrategy="Sorted" StreamSafe="false">
          <dxl:Properties>
            <dxl:Cost StartupCost="0" TotalCost="431.000039" Rows="1.000000" Width="5"/>
          </dxl:Properties>
          <dxl:GroupingColumns>
            <dxl:GroupingColumn ColId="0"/>
          </dxl:GroupingColumns>
          <dxl:ProjList>
            <dxl:ProjElem ColId="0" Alias="h">
              <dxl:Ident ColId="0" ColName="h" TypeMdid="0.32774.1.0"/>
            </dxl:ProjElem>
          </dxl:ProjList>
          <dxl:Filter/>
          <dxl:GatherMotion InputSegments="0,1,2" OutputSegments="-1">
            <dxl:Properties>
              <dxl:Cost StartupCost="0" TotalCost="431.000031" Rows="1.000000" Width="5"/>
            </dxl:Properties>
            <dxl:ProjList>
              <dxl:ProjElem ColId="0" Alias="h">
                <dxl:Ident ColId="0" ColName="h" TypeMdid="0.32774.1.0"/>
              </dxl:ProjElem>
            </dxl:ProjList>
            <dxl:Filter/>
            <dxl:SortingColumnList>
              <dxl:SortingColumn ColId="0" SortOperatorMdid="0.32840.1.0" SortOperatorName="#&lt;#" SortNullsFirst="false"/>
            </dxl:SortingColumnList>
            <dxl:Aggregate AggregationStrategy="Sorted" StreamSafe="false">
              <dxl:Properties>
                <dxl:Cost StartupCost="0" TotalCost="431.000012" Rows="1.000000" Width="5"/>
              </dxl:Properties>
              <dxl:GroupingColumns>
                <dxl:GroupingColumn ColId="0"/>
              </dxl:GroupingColumns>
              <dxl:ProjList>
                <dxl:ProjElem ColId="0" Alias="h">
                  <dxl:Ident ColId="0" ColName="h" TypeMdid="0.32774.1.0"/>
                </dxl:ProjElem>
              </dxl:ProjList>
              <dxl:Filter/>
              <dxl:Sort SortDiscardDuplicates="false">
                <dxl:Properties>
                  <dxl:Cost StartupCost="0" TotalCost="431.000010" Rows="1.000000" Width="5"/>
                </dxl:Properties>
                <dxl:ProjList>
                  <dxl:ProjElem ColId="0" Alias="h">
                    <dxl:Ident ColId="0" ColName="h" TypeMdid="0.32774.1.0"/>
                  </dxl:ProjElem>
                </dxl:ProjList>
                <dxl:Filter/>
                <dxl:SortingColumnList>
                  <dxl:SortingColumn ColId="0" SortOperatorMdid="0.32840.1.0" SortOperatorName="#&lt;#" SortNullsFirst="false"/>
                </dxl:SortingColumnList>
                <dxl:LimitCount/>
                <dxl:LimitOffset/>
                <dxl:TableScan>
                  <dxl:Properties>
                    <dxl:Cost StartupCost="0" TotalCost="431.000006" Rows="1.000000" Width="5"/>
                  </dxl:Properties>
                  <dxl:ProjList>
                    <dxl:ProjElem ColId="0" Alias="h">
                      <dxl:Ident ColId="0" ColName="h" TypeMdid="0.32774.1.0"/>
                    </dxl:ProjElem>
                  </dxl:ProjList>
                  <dxl:Filter/>
                  <dxl:TableDescriptor Mdid="6.65536.1.0" TableName="testhstore">
                    <dxl:Columns>
                      <dxl:Column ColId="0" Attno="1" ColName="h" TypeMdid="0.32774.1.0" ColWidth="5"/>
                      <dxl:Column ColId="1" Attno="-1" ColName="ctid" TypeMdid="0.27.1.0" ColWidth="6"/>
                      <dxl:Column ColId="2" Attno="-3" ColName="xmin" TypeMdid="0.28.1.0" ColWidth="4"/>
                      <dxl:Column ColId="3" Attno="-4" ColName="cmin" TypeMdid="0.29.1.0" ColWidth="4"/>
                      <dxl:Column ColId="4" Attno="-5" ColName="xmax" TypeMdid="0.28.1.0" ColWidth="4"/>
                      <dxl:Column ColId="5" Attno="-6" ColName="cmax" TypeMdid="0.29.1.0" ColWidth="4"/>
                      <dxl:Column ColId="6" Attno="-7" ColName="tableoid" TypeMdid="0.26.1.0" ColWidth="4"/>
                      <dxl:Column ColId="7" Attno="-8" ColName="gp_segment_id" TypeMdid="0.23.1.0" ColWidth="4"/>
                    </dxl:Columns>
                  </dxl:TableDescriptor>
                </dxl:TableScan>
              </dxl:Sort>
            </dxl:Aggregate>
          </dxl:GatherMotion>
        </dxl:Aggregate>
      </dxl:Aggregate>
    </dxl:Plan>
  </dxl:Thread>
</dxl:DXLMessage>
